اپراتورها و عبارتها
بیشتر فراخوانیها(خطوط منطقی) که مینویسید دارای عبارتها هستند. عباراتها را میتوان به دو بخش تقسیم کرد عملوندها و عبارتها.
برای مثال  2 + 3
اپراتور، یک قابلیتی است که میتواند نمادهای مانند  + یا کلیدهای خاص کیبورد را استفاده کند. اپراتورها به بعضی اطلاعات برای انجام این کار نیاز دارن که به این اطلاعات عملوند میگویند. در این خصوص 2  و 3 عملوند هستند.
اپراتورها
به طور خلاصهوار به اپراتورها یک نگاهی میکنیم.
توجه داشته باشید که عبارتها را میتوانید ارزیابی کنید. برای مثال با استفاده از مفسر تعاملی (همان خط دستور)، برای انجام تست عبارتها  2 + 3از کادرمحاورهی شل پایتون  استفاده کنید:
>>> 2 + 3
5
>>> 3 * 5
15
>>>
چند مثال برای اشنایی:
- +(جمع)- اضافه کردن دو دستور العمل
- 3 + 5نتیجهاش- 8.- 'a' + 'b'نتیجهاش- 'ab'.
 
- -(منفی)- کم کردن یک عدد از عدد دیگر
- 5.2-نتیجهاش منفی میشود و- 50 - 24نتیجهاش- 26.
 
- *(ضرب)- ضرب دو عدد را میدهد یا رشتهی را چندبار تکرار میکند.
- 2 * 3 نتیجهاش- 6.- 'la' * 3نتیجهاش- 'lalala'.
 
- **(توان)- به توان رساندن x به y.
- 3 ** 4نتیجهاش- 81(یاهمان- 3 * 3 * 3 * 3).
 
- /(تقسیم)- تقسیم x به y
- 3 / 13نتیجهاش- 4.333333333333333.
 
- //(تقسیم صحیح)- تقسیم x به y به صورتکی که کوچکترین عدد را در نظر میگیرد.
- 3 // 13نتیجهاش- 4.
- 3 // 13-نتیجهاش- 5-.
 
- %(باقیمانده)- باقیمانده تقسیم عدد را برمیگرداند.
- 3 % 13نتیجهاش- 1.- -25.5 % 2.25نتیچهاش- 1.5
 
- <<(به چپ جابهجا کردن (left shift))- به اندازهی یک بیت از شماره به سمت چپ جابهجا میکند.(هر عدد در حافظه به صورت مبنای دودویی است مانند 0 و 1)
- 2 << 2نتیجهاش- 8.- 2در مبنای دو- 10بیت را نمایش میدهد.
- ۲ بیت به چپ جابهجا کردن نتیجهاش 1000که در مبنای ده8را نمایش میدهد.
 
- >>(به راست جابهجا کردن (right shift))- به اندازهی یک بیت از شماره به سمت راست جابهجا میکند.
- 11 >> 1نتیجهاش- 5.
- 11در حالتی بیتی- 1011را نمایش میدهد، اگر به اندازه ۱ بیت سمت راست جابهجا کنیم نتیجهاش- 101است.که در مبنای دهدهی- 5است.
 
- &(بیت منطقی AND)- بیت منطقی AND و عدد
- 3 & 5نتیجهاش- 1.
 
- |(بیت منطقی OR)- بیت منطقی OR و عدد
- 3 | 5نتیجهاش- 7.
 
- ^(بیت منطقی XOR)- بیت منطقی XOR و عدد
- 3 ^ 5نتیجهاش- 6.
 
- ~(بیت منطقی (وارونهکردن)invert)- بیت منطقی X وارونهاش (x+1)- است.
- ~5نتیجهاش- -6. اطلاعات بیشتر در http://stackoverflow.com/a/11810203
 
- <(کمتر)- برسیمیکند، ایا X کمتر Y است. همهی مقایسههای عملوندها - Trueیا- Falseرا برمیگردانند.به این نکتههای توجه کنید.
- این - 3 > 5نتیجهاش- Falseو- 5 > 3نتیجهاش- True.
- مقایسه میتواند به صورت زنچیرهای باشد: 7 > 5 > 3نتیجهاشTrue.
 
- >(بیشتر)- برسیمیکند، ایا X بیشتر Y است.
- این 3 < 5نتیجهاشTrue. اگر هر دو عملوندها عدد باشند تبدیل به نوع معمولی میشوند در غیره این صورت محتوای بازگشتی همیشهFalseاست.
 
- <=(کمتر یا مساوی)- برسیمیکند، ایا X کمتر یا مساوی Y است .
- اینx = 3; y = 6; x <= yنتیجهاشTrue.
 
- >=(بیشتر و مساوی)- برسیمیکند، ایا X بیشتر یا مساوی Y است .
- این x = 4; y = 3; x >= 3نتیجهاشTrue.
 
- ==(مساوری)- برسیمیکند، ایا دو مقدار باهم مساوی هستند.
- این x = 2; y = 2; x == yنتیجهاشTrue.
- این x = 'str'; y = 'stR'; x == yنتیجهاشFalse.
- این x = 'str'; y = 'str'; x == yنتیجهاشTrue.
 
- !=(نامساوی)- برسیمیکند، ایا دو مقدار باهم نامساوی هستند.
- این x = 2; y = 3; x != yنتیجهاشTrue.
 
- not(بولی NOT)
- اگر X برارTrueباشد نتیجهاشFalseاست. اگر X برارFalseباشد نتیجهاشTrueاست.- این x = True; not xنتیجهاشFalse.
 
- این 
- and(بولی AND)- این x and yنتیجهاشFalseاگر X برارFalseوگرنه Y را برسی میکند.
- این x = False; y = True; x and yنتیجهاشFalseچونکه X برار False.در این حالت پایتون Y را ارزیابی میکند بخاطر انکه میداند قسمت راستی 'and' عبارتFalseاست که بدان معنی است که تمامی عبارتهاFalseبدون دلالت دیگر عبارتها خواهد بود. این را به نام short-circuit evaluation مینامیم.
 
- این 
- or(بولی OR)- اگر x برار Trueباشد نتیجهاش True است در غیر این صورت Y را ارزیابی میکند.
- این x = True; y = False; x or yنتیجهاشTrueاست. در اینجاهم از Short-circuit evaluation استفاده میشود
 
- اگر x برار 
میانبر برای عملیات ریاضی و انتساب
معمولا عملیات ریاضی در متغییرها انجام میشود و جواب انها هم به متغییرها بر میگردد. بخاطر همین برای همچنین عبارتهای مینابرهای مانند زیر را داریم:
a = 2
a = a * 3
همچنین به این صورت هم میتوان نوشت:
a = 2
a *= 3
توجه داشته باشید که که عبارت var = var operation expression تبدیل به var operation= expression میشود.
برسی سفارش
اگر شما چنین عبارتی را دارید 4 * 3 + 2 بنظر شما اول جمع میشود یا ضرب میشود؟ طبق دروس ریاضی که در دبیرستان یاد گرفتیم، باید اول عمل ضرب انجام شود. و این بدان معنی است که عملوند ضرب اولویت بیشتر نسبت به عملوند جمع دارد .
در جدول بعدی اولویت عملوندهای پایتون گفته شده است. از پایینترین اولویت (اخرین مرحله) تا بالاترین اولویت(اولین مرحله). این بدان معنی است که عبارتهای پایتون در این جدول، اول عبارتها و عملوندهای که اولویت پایینتر دارند ارزیابی میشوند و بعد انهای که اولویت بیشتر دارند ارزیابی میشوند.
جدول بعدی از Python reference manual) گرفته شده است. ترجیحا بهتر است که از پرانتز برای گروهبندی عملوندها و عبارتها استفاده شود. بخاطر انکه به این صورت میتوانیم به راحتی اولویت را درک کنیم.همچنین به راحتر کردن خواندن برنامه، این موضوع کمک میکند.بیشتر بدانید Changing the Order of Evaluation.
- lambda: Lambda Expression
- if - else: Conditional expression(عبارت شرطی)
- or: Boolean OR (OR بولی)
- and: Boolean AND (AND بولی)
- not x: Boolean NOT (NOT بولی)
- in, not in, is, is not, <, <=, >, >=, !=, ==: Comparisons, including membership tests and identity tests (مقایسه، شامل ارزیابی هویت ، انتساب متغییر)
- |: Bitwise OR (OR بیتمنطقی)
- ^: Bitwise XOR (XOR بیتمنطقی)
- &: Bitwise AND (AND بیتمنطقی)
- <<, >>: Shifts (جابهجاکردن یا همون شیفت دادن)
- +, -: Addition and subtraction (جمع و تفریق)
- *, /, //, %: Multiplication, Division, Floor Division and Remainder (ضرب، تقسیم، تقسیم صحیح و باقیمانده)
- +x, -x, ~x: Positive, Negative, bitwise NOT (NOT مثت، منفی، بیتمنطقی)
- **: Exponentiation
- x[index], x[index:index], x(arguments...), x.attribute: Subscription, slicing, call, attribute reference (فراخوانی، بقیه را هر کسی که معنی تخصصی اش را میداند بگذارد)
- (expressions...), [expressions...], {key: value...}, {expressions...}: Binding or tuple display, list display, dictionary display, set display (...)
اپراتورهای که تا به حال ندیدهایم در فصول بعدی توضیح داده خواهد شد.
اپراتورهای که  اولویت یکسان دارند همان طور که در جدول بالا میبیند. برای مثال + و - که اولویت یکسانی دارند. تمامی انان در یک خط نوشته شدهاند.
تغییر دادن به منظور ارزیابی
{#changing-order-of-evaluation}
برای انکه عبارتها را بهتر بفهیم و راحتر قابل خواندن باشند میتوانیم پرانتز استفاده کنیم. برای مثال 2 + (3 * 4)  واقعا فهم این راحتر از 2 + 3 * 4 بخاطرهمین اولویت عملوندها یادگیراش مهم است. این را هم در نظر بگیرید که پرانتزها باید عاقلانه استفاده شوند(جوگیر نشوید).همچین پرانتزها باید مقداردهی شوند برای مثال (2 + (3 * 4)).
همچنین یک نکته دیگر بهتر برای استفاده از پرانتز داریم با این روش میتوان اولویتها را تغییر داد. برای مثال اگر شما میخواهید جمع اولویت بیشتر نسبت به ضرب داشته باشد، میتوانید از این روش استفاده کنید (2 + 3) * 4.
ارتباطات
عملوندها معمولا از راست به چپ باهم در ارتباط هستند.این بدان معنی است که عملوندها با اولویت یکسان  از چپ به راست ارزیابی میشوند.برای مثال 2 + 3 + 4 و به این صورت (2 + 3) + 4 ارزیابی میشوند.
عبارتها
مثال (expression.py همچین قایل را ذخیره کنید)
length = 5
breadth = 2
area = length * breadth
print('Area is', area)
print('Perimeter is', 2 * (length + breadth))
خروجی:
$ python expression.py
Area is 10
Perimeter is 14
چطور و چگونه
طول و عرض مستطیل با همان اسم در متغییر ذخیره میشوند. برای محاسبه طول و عرض مستطیل از عبارتها استفاده میشود.  نتیجه را در عبارت length * breadth (طول و عرض) در +area(مساحت)+ ذخیره میکنیم. و بعد با استفاده از تابع +print+ خروجی 2 * (length + breadth) را چاپ میکنیم. همین طور که مشاهده میکنید دراینجا از محتویات عبارتها استفاده میکنیم.
همچنین این نکته را در نظر بگیرید که پایتون به چه زیبایی خروجی را چاپ میکند. حتی با اینکه بین 'Area is' و متغییر area فاصله نگذاشتیم. به چه زیبایی پایتون این فاصلههای را گذشته است. برای این که یک خروجی تمیز و قابل خواندن داشته باشیم(دیگر نیاز نیست برای فاصلهی خطوط نگران باشیم). این یکی از مثالهای است که پایتون زندگی برنامهنویسان را اسودهتر میکند.
خلاصه
چگونگی استفاده از اپراتورها و عبارتها را دیدیم. این موضوع یک ساختار مهم در بلوکهای برنامهنویسی است. در فصول بعدی خواهیم دید چگونه دربرنامههایمان ازفراخوانیها استفاده کنیم.
test